
#include <stdio.h>

#include <gmp.h>

/**
 * Tests operations on the multi-precision integer numbers
 */
static void test_mpz() {
    mpz_t a;
    mpz_t b;
    mpz_t c;

    puts("test mpz\n");

    mpz_init_set_str(a, "10000000000000000001", 10);
    mpz_init_set_str(b, "77777777777777777777", 10);
    mpz_init(c);

    /* c = a * b */
    mpz_mul(c, a, b);

    gmp_printf("c = %Zd\n", c);

    mpz_clear(a);
    mpz_clear(b);
    mpz_clear(c);
}

int main(int argc, char * argv[]) {
    puts("GMP sample\n");

    test_mpz();
    
    return 0;
}
